home *** CD-ROM | disk | FTP | other *** search
/ JCSM Shareware Collection 1993 November / JCSM Shareware Collection - 1993-11.iso / cl720 / qbscr2j.lzh / DISENTRY.BAS < prev    next >
BASIC Source File  |  1992-07-08  |  4KB  |  80 lines

  1. SUB DisplayEntry (entry$, qfg%, qbg%, hfg%, hBG%, fg%, bg%, marker$, divider$, wid%, actionCode%)
  2.  
  3.   '┌─────────────────────────────────────────────────────────────────────────┐
  4.   '│  This routine is used only by the MakeMenu% Function.  It is not meant  │
  5.   '│  for use on its own.  The routine displays the passed menu entry on the │
  6.   '│  screen, and highlights the character that proceeds the marker          │
  7.   '│  character.  Also interprets and displays menu dividers.                │
  8.   '│                                                                         │
  9.   '│  Parameters are as follows:                                             │
  10.   '│                                                                         │
  11.   '│      entry$ - the actual text entry to display on the screen            │
  12.   '│      qfg% - Foreground color for 'Quick Access' key character           │
  13.   '│      qbg% - Background color for 'Quick Access' key character           │
  14.   '│      hfg% - Foreground color for entry at highlight bar                 │
  15.   '│      hbg% - Background color for entry at highlight bar                 │
  16.   '│      fg%  - Foreground color for normal entry                           │
  17.   '│      bg%  - Background color for normal entry                           │
  18.   '│      marker$ - the character used in menu entry strings that indicates  │
  19.   '│                the next character is a 'Quick Access' key.              │
  20.   '│      divider$ - The string or character that denotes a menu divider.    │
  21.   '│      wid% - The full width of the menu window.                          │
  22.   '│      actionCode% - Has value of 1 or 2.  1 indicates that the entry     │
  23.   '│                    being displayed is a normal, unhighlighted entry,    │
  24.   '│                    thus the 'Quick Access' character in the entry will  │
  25.   '│                    be highlighted.  If 2, 'Quick Access' key is not     │
  26.   '│                    highlighted, since entry is in highlight bar.        │
  27.   '└─────────────────────────────────────────────────────────────────────────┘
  28.  
  29.   '──────────────────────────────────────────────────────────────────────────
  30.   ' Assumes cursor is already at the right spot to display entry on.
  31.   ' Display each character until the marker char is found.  Print highlighted
  32.   ' 'Quick Access' char if ActionCode% is 1, otherwise print normal 'Quick
  33.   ' Access' char.  Then print rest of entry and return to MakeMenu%.
  34.   '──────────────────────────────────────────────────────────────────────────
  35.  
  36.   '──────────────────────────────────────────────────────────────────────────
  37.   ' Set colors.
  38.   '──────────────────────────────────────────────────────────────────────────
  39.     SELECT CASE actionCode%
  40.     CASE 1
  41.       COLOR fg%, bg%
  42.     CASE 2
  43.       COLOR hfg%, hBG%
  44.     CASE ELSE
  45.     END SELECT
  46.  
  47.   '──────────────────────────────────────────────────────────────────────────
  48.   ' If the entry is a menu divider, draw it.  Otherwise, display text.
  49.   '──────────────────────────────────────────────────────────────────────────
  50.     IF entry$ = divider$ THEN
  51.  
  52.       LOCATE CSRLIN, POS(0) - 1, 0
  53.       PRINT STRING$(wid% + 2, 196);
  54.  
  55.     ELSE
  56.  
  57.       FOR x% = 1 TO LEN(entry$)
  58.         IF MID$(entry$, x%, 1) = marker$ THEN
  59.           x% = x% + 1
  60.           SELECT CASE actionCode%
  61.           CASE 1
  62.             COLOR qfg%, qbg%
  63.           CASE 2
  64.             COLOR hfg%, hBG%
  65.           CASE ELSE
  66.           END SELECT
  67.         END IF
  68.         PRINT MID$(entry$, x%, 1);
  69.         IF actionCode% = 2 THEN
  70.           COLOR hfg%, hBG%
  71.         ELSE
  72.           COLOR fg%, bg%
  73.         END IF
  74.       NEXT x%
  75.  
  76.     END IF
  77.  
  78. END SUB
  79.  
  80.